# RESTful API Design

## 📚 Books
- [The Design of Web APIs, Arnaud Lauret](https://www.manning.com/books/the-design-of-web-apis)
## 📘 Resources
- [https://restfulapi.net](https://restfulapi.net)
- [whitehouse/api-standards](https://github.com/whitehouse/api-standards)
- [adidas API Guidelines](https://adidas.gitbook.io/api-guidelines/)
## 📕 Articles
- [What is REST](https://restfulapi.net)
- [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md)
- [Design Guidelines](http://apistylebook.com/design/guidelines/)
- [REST API Naming Conventions](https://restfulapi.net/resource-naming/)
- [Web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)
- [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html)
- [RESTful API Design: 13 Best Practices to Make Your Users Happy](https://florimond.dev/blog/articles/2018/08/restful-api-design-13-best-practices-to-make-your-users-happy/)
- [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api)
- [Design Guidelines](http://apistylebook.com/design/guidelines/)
- [The Web API Checklist -- 43 Things To Think About When Designing, Testing, and Releasing your API](https://mathieu.fenniak.net/the-api-checklist/)
- [Design Topics](http://apistylebook.com/design/topics/)
- [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md)
- [REST lessons learned](https://blog.ploeh.dk/2013/04/29/rest-lessons-learned/)
- [REST Architectural Constraints](https://restfulapi.net/rest-architectural-constraints/)
- [Caching REST API Response](https://restfulapi.net/caching/)
- [REST Resource Representation Compression](https://restfulapi.net/rest-resource-compression/)
- [Content Negotiation in REST APIs](https://restfulapi.net/content-negotiation/)
- [HATEOAS Driven REST APIs](https://restfulapi.net/hateoas/)
- [Idempotent REST APIs](https://restfulapi.net/idempotent-rest-apis/)
- [REST API Security Essentials](https://restfulapi.net/security-essentials/)
- [REST API Versioning](https://restfulapi.net/versioning/)
- [Statelessness in REST APIs](https://restfulapi.net/statelessness/)
- [Comparing SOAP vs REST APIs](https://restfulapi.net/soap-vs-rest-apis/)
- [HTTP Methods](https://restfulapi.net/http-methods/)
- [HTTP Status Codes](https://restfulapi.net/http-status-codes/)
- [What is an API?](https://restfulapi.net/what-is-an-api/)
- [REST – PUT vs POST](https://restfulapi.net/rest-put-vs-post/)
- [HTTP Status Codes Cheatsheet](https://vishnuch.tech/http-status-codes-cheatsheet)
- [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/index.html)
- [CRUD API Design & CRUD API Recommendations](https://stoplight.io/blog/crud-api-design/)
- [Principles & Best practices of REST API Design](https://zonito.medium.com/best-practice-and-cheat-sheet-for-rest-api-design-6a6e12dfa89f)
- [Principles & Best practices of REST API Design](https://blog.devgenius.io/best-practice-and-cheat-sheet-for-rest-api-design-6a6e12dfa89f)
- [RESTful web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)
- [Web API implementation](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-implementation)
- [ENSURING THE CORRECTNESS OF YOUR API](https://www.natmarchand.fr/ensuring-correctness-api/)

## 📺 Videos
- [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg)
